草庐IT

网站https 问题记录

全部标签

go - go 例程 channel 中的同步问题

我正在尝试编写一个代理服务器,用于将视频文件转换为实时流。一个vod文件由多个不同比特率的子list文件组成。每个子list由多个ts段组成,每个4秒。为简单起见,我创建了一个包含2个子list的虚拟映射,每个子list包含4个ts段。我的任务是在for循环中无限地创建一个实时流。所以我在go例程4秒后发送每个ts段并写入channel,我还有一个go例程,我从这个go例程中读取并写入输出字符串。一旦所有片段结束,我将更新到loopEndchannel并重新开始。有2个不同比特率的API,每4秒后给我一个新的ts。packagemainimport("fmt""github.com/g

go - 在 buffalo 中生成新项目失败,出现 GO111MODULE 问题

我是第一次尝试buffalo。我手动安装了先决条件而不是使用scoop,因为我不知道scoop会把东西放在哪里:https://www.stuartellis.name/articles/windows-golang-setup/#installing-buffalo使用Powershell中的这个安装了buffalo,它似乎工作正常:goget-u-vgithub.com/gobuffalo/buffalo/buffalo然而,当我使用这个例子生成一个新项目时:https://gobuffalo.io/en/docs/getting-started/new-project/buffa

go - 在 GORM 中创建关联记录?

我正在做一个项目,对Golang还比较陌生。我正在为我的数据库ORM使用GORM。我不知道我做错了什么,但我无法创建关联记录。type(Taskstruct{gorm.ModelTitlestring`json:"title"`Descriptionstring`json:"description"`PriorityPriority`json:"priority_id"validate:"required"gorm:"foreignkey:PriorityID"`PriorityIDuint}Prioritystruct{gorm.ModelNamestring`json:"name"

google-app-engine - 具有运行时 go111 url 调度问题的 dev_appserver.py

我仍在努力让我的旧式应用引擎至少在go111下工作(由于依赖于内存缓存,go112将无法工作)。我现在正在为我的静态文件的app.yaml配置问题绊倒,我之前使用了一个完全静态的目录布局,只是在根目录中指定了一些动态处理程序,如下所示:runtime:go111handlers:-url:/_ah/.*script:autologin:adminsecure:always-url:/dynamicscript:autosecure:always-url:/admin/.*script:autologin:adminsecure:always-url:(.*)/static_files:

go - 使用 Go 的堆栈集合声明堆栈时遇到问题

我正在将一个最初用C++编写的工具转换为使用VSCode的Go,但Golinter不喜欢我的堆栈声明。我已经根据Go文档导入了堆栈集合,我认为我的Go工作区目录层次结构是正确的。-go(workspace)-bin-pkg-darwin_amd64-github.com-golang-collections-collections-stack.a-src-github.com-golang-collections-collections-stackstack.gostack_test.go-zwnewsom-verifiermain.gopackagemainimport("C""gi

go - 如何记录或打印使用 Gin 收到的请求?

例子:funccreateOrUpdateInfluencer(c*gin.Context){}如何在我的函数中打印接收到的请求中的数据?在我的例子中,我应该接收JSON,如何在不知道它是什么样子的情况下打印它? 最佳答案 只需读取并打印正文即可:funccreateOrUpdateInfluencer(c*gin.Context){body,_:=ioutil.ReadAll(c.Request.Body)println(string(body))}或者如果你只是想在中间件中偷看,你可以读完后放回Go:funccreateOrUp

google-app-engine - 如何在 Google Cloud AppEngine 上强制使用 https

我正在尝试为托管在GoogleCloudAppEngine上的应用程序的所有流量强制使用https。https有效,但尽管遵循了将http流量重写为https的说明,但仍然可以使用http访问该站点,这会导致问题。我已将其添加到app.yaml中:handlers:-url:/.*script:_go_appsecure:alwaysredirect_http_response_code:301但好像没什么区别。我正在使用julienschmidt路由器,然后用它来处理所有路由:log.Fatal(fmt.Println(http.ListenAndServe(":8080",rout

google-app-engine - app.yaml api_version 将 Google AppEngine 从 Go 1.9 迁移到 Go 1.11 时出现问题

在$DAYJOB,我们使用基于Go1.9的AppEngine应用程序。现在Google正在弃用1.9版,我正尝试使用migrationguide升级到1.11。.它说我应该设置runtime:go111并从app.yaml中删除api_version:go1.9值,但是这样做时,我获取部署错误消息:ERROR:(gcloud.app.deploy)Stagingcommand[/usr/lib/google-cloud-sdk/platform/google_appengine/go-app-stager/home/peter/src/licensemanager/src/web/ap

go - 如何初始化一个 zap 记录器并在其他 Go 文件中重用它?

我正在尝试从漂亮的Logrus(对调试非常有帮助)迁移我的应用程序并引入Uber日志框架Zap。使用Logrus,我可以只初始化记录器一次并从其他Go文件中重用它,例如:packagemainimport(//Printfilenameonlogfilename"github.com/onrik/logrus/filename"//Veryniceloglibrarylog"github.com/sirupsen/logrus")funcmain(){//====SETLOGGINGFormatter:=new(log.TextFormatter)Formatter.Timestamp

postgresql - GORM 创建可能已经存在的记录

我正在使用gorm在我的Go应用程序中使用postgres。我想在数据库中创建一个新用户,但该用户很可能已经存在。如果是这样,我不想对数据库做任何事情,但我想知道它以便告诉用户。好消息是,这已经是gorm.Create(..)做。尝试使用重复的唯一键创建记录将返回错误。有两个问题:我想要更好的错误信息。我想编写针对“此电子邮件地址已存在”与“存在实际内部错误”的自定义面向用户的错误消息。除了尝试解析Create()返回的错误字符串外,我不知道如何区分这两个事件,这似乎很容易出错。我不想弄乱我的日志。使用已存在的对象调用Create()会将错误消息记录到标准输出。我真的不认为这是一个“错